/**
 * 
 */
package com.workable.assignment.domain.rottentomatoes;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.workable.assignment.domain.ApiMovie;
import com.workable.assignment.utilities.StringUtil;

/**
 * @author npapadopoulos
 * 
 */
public class RTMovie implements Serializable, ApiMovie {

    /**
	 * 
	 */
    private static final long serialVersionUID = -3912775609955004611L;

    private long id;

    private String title;

    private int year;

    @JsonProperty(value = "mpaa_rating")
    private String mpaaRating;

    private int runtime;

    @JsonProperty(value = "critics_consensus")
    private String criticsConsensus;

    @JsonProperty(value = "release_dates")
    private Map<String, String> releaseDates;

    private Map<String, String> ratings;

    private String synopsis;

    private Map<String, String> posters;

    @JsonProperty(value = "abridged_cast")
    private List<RTMovieActor> abridgedCast;

    @JsonProperty(value = "alternate_ids")
    private Map<String, String> alternateIds;

    private Map<String, String> links;

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    @Override
    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }

    public String getMpaaRating() {
        return mpaaRating;
    }

    public void setMpaaRating(String mpaaRating) {
        this.mpaaRating = mpaaRating;
    }

    public int getRuntime() {
        return runtime;
    }

    public void setRuntime(int runtime) {
        this.runtime = runtime;
    }

    public String getCriticsConsensus() {
        return criticsConsensus;
    }

    public void setCriticsConsensus(String criticsConsensus) {
        this.criticsConsensus = criticsConsensus;
    }

    public Map<String, String> getReleaseDates() {
        return releaseDates;
    }

    public void setReleaseDates(Map<String, String> releaseDates) {
        this.releaseDates = releaseDates;
    }

    public Map<String, String> getRatings() {
        return ratings;
    }

    public void setRatings(Map<String, String> ratings) {
        this.ratings = ratings;
    }

    public String getSynopsis() {
        return synopsis;
    }

    public void setSynopsis(String synopsis) {
        this.synopsis = synopsis;
    }

    public Map<String, String> getPosters() {
        return posters;
    }

    public void setPosters(Map<String, String> posters) {
        this.posters = posters;
    }

    public List<RTMovieActor> getAbridgedCast() {
        return abridgedCast;
    }

    public void setAbridgedCast(List<RTMovieActor> abridgedCast) {
        this.abridgedCast = abridgedCast;
    }

    public Map<String, String> getAlternateIds() {
        return alternateIds;
    }

    public void setAlternateIds(Map<String, String> alternateIds) {
        this.alternateIds = alternateIds;
    }

    public Map<String, String> getLinks() {
        return links;
    }

    public void setLinks(Map<String, String> links) {
        this.links = links;
    }

    @Override
    public String toString() {
        return StringUtil.toString(this);
    }
}
